using System;
using System.Collections.Generic;

namespace B.WMS.GoodsDto.Output
{
    /// <summary>
    /// 预测结果DTO
    /// </summary>
    public class PredictionResultDto
    {
        /// <summary>
        /// 原始数据
        /// </summary>
        public List<HistoricalDataDto> HistoricalData { get; set; } = new List<HistoricalDataDto>();

        /// <summary>
        /// 预测数据
        /// </summary>
        public List<PredictedDataDto> PredictedData { get; set; } = new List<PredictedDataDto>();

        /// <summary>
        /// 预测开始时间
        /// </summary>
        public DateTime StartDate { get; set; }

        /// <summary>
        /// 预测结束时间
        /// </summary>
        public DateTime EndDate { get; set; }

        /// <summary>
        /// 预测准确度评分
        /// </summary>
        public double AccuracyScore { get; set; }

        /// <summary>
        /// 预测模型版本
        /// </summary>
        public string ModelVersion { get; set; } = "1.0";
    }

    /// <summary>
    /// 历史数据DTO
    /// </summary>
    public class HistoricalDataDto
    {
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public float Num { get; set; }

        /// <summary>
        /// 年份
        /// </summary>
        public int Year { get; set; }

        /// <summary>
        /// 月份
        /// </summary>
        public int Month { get; set; }

        /// <summary>
        /// 日期
        /// </summary>
        public int Day { get; set; }
    }

    /// <summary>
    /// 预测数据DTO
    /// </summary>
    public class PredictedDataDto
    {
        /// <summary>
        /// 预测时间
        /// </summary>
        public DateTime PredictedDate { get; set; }

        /// <summary>
        /// 预测数量
        /// </summary>
        public float PredictedNum { get; set; }

        /// <summary>
        /// 置信度
        /// </summary>
        public double Confidence { get; set; }

        /// <summary>
        /// 预测分数
        /// </summary>
        public float Score { get; set; }
    }
} 